1. Field of the Invention
This invention relates to systems and methods for discovering and installing plugins for web applications.
2. Background of the Invention
A web application is an application that is accessed over a network such as the Internet. Commonly, web applications are applications hosted in browser-controlled environments (e.g., Java applets) or coded in browser-supported languages (e.g., JavaScript combined with a browser-rendered markup language such as HTML) and reliant on web browsers for execution. Web applications are popular because of the ubiquity of web browsers and the convenience of using a web browser as a client, also referred to as a thin client. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for their popularity, as is the inherent support for cross-platform compatibility. Common web applications include web email, online retail sales, online auctions, and the like.
Typically, adding new functionality (also referred to as “plugins” or “extensions”) to a web application that is designed for extensibility involves installing new software on the origin server (i.e., the server hosting the web application). In cases where the new functionality is not directly installable on the origin server, the origin server may act as a proxy to another server that offers the new functionality. Both of these approaches, however, may be subject to administrative overhead and delay, since users may need to wait for administrators to add or reference the new functionality before the new functionality is available for use. In many cases, adding or referencing the new functionality is a non-trivial and expensive process. In many environments, any modification to server-side resources is considered highly undesirable since the modification has the potential to destabilize the web application and cause an outage for all users.
In view of the foregoing, what are needed are improved systems and methods to add new functionality to web applications. Ideally, such systems and methods can be implemented without modifying server-side resources, thereby reducing the chance that the addition will cause an outage. Such systems and methods will also ideally provide security and privacy to users wishing to use the new functionality.